#include"httplib.h"
using namespace std;
using namespace httplib;

void HelloBit(const Request&req, Response& rsp)
{
    rsp.body == "Hello Bit";
    rsp.status == 200;//可以忽略。默认httplib会加上200的状态码
}
void Numbers(const Request& req, Response& res)
{
    //matchs:存放正则化表达式匹配的规则数据  /numbers/123    matchs[0] = /numbers/123;matchs[1] = 123
    std::string num = req.matches[1];
    res.set_content(num, "text/plain");//向rsp.body里面添加数据，并且设置Content-type类型
    res.status == 200;
}
void Multipart(const Request&req, Response& rsp)
{
    MultipartFormData file = req.get_file_value("file1");
    std::cout << file.filename << std::endl;
    std::cout <<  file.content_type << std::endl;
    std::cout <<  file.content << std::endl; //正文内容
    rsp.status == 200;
}
int main()
{
    Server server;

    //1设置一个静态资源根目录，----为当前目录下的www目录
    server.set_mount_point("/","./www");

    //2添加请求---处理函数映射信息
    server.Get("/hi",HelloBit);
    //正则表达式中：\d表示数字，+表示匹配前边的字符一次或者多次，（）表示单独捕捉数据，/numbers/123
    server.Get("/numbers/(\\d+)",Numbers);//前面是路径的意思
    server.Post("/multipart",Multipart);//多区域文件上传

    //3启动服务器
    server.listen("0.0.0.0", 9090);
    return 0;
}